1. Scope of the Invention
This invention relates generally to data processing systems, and more specifically to apparatus which makes available to the programmer responses to input/output commands.
2. Description of the Prior Art
Many data processing systems include a number of subsystems coupled in common to a system bus. The subsystems may include a number of central processors, a memory subsystem and a number of peripheral subsystems. These peripheral subsystems may include a number of communication subsystems, a number of mass storage subsystems, a number of unit record subsystems, a number of workstation subsystems, and the like.
Any subsystem, a master, may communicate with another subsystem, a slave, by generating a command over the system bus. The command includes a channel number identifying the slave, a function code specifying the operation the slave is to perform and in some commands, data which the slave will use in performing the specified operation. The slave will generate an acknowledge signal over the system bus if the command is received. The master will receive the acknowledge signal from the system bus and disengage itself from the system bus.
Similarly the slave may issue a not acknowledge signal over the system bus to indicate that the slave did not accept the command. The master will receive the not acknowledge signal from the system bus and disengage itself from the system bus. The master then will make a decision whether or not to retry.
It is possible that the slave will not respond to the command. In that event the master will timeout and disengage itself from the system bus. The master may retry the command and if there is still no response, make a decision further to possibly alert the operator of a problem.
However a central processor unit which, as a master, generates many commands to different slaves has a problem of keeping track of the responses to those commands and still maintain its software throughput, particularly when any I/O command may be interrupted by a higher priority command.